package es.mfp.practicos.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import es.mfp.practicos.domain.Estado;
import es.mfp.practicos.domain.LineaTelefonica;

@Repository
public class LineaTelefonicaDAOImpl extends GenericDaoImpl<LineaTelefonica, Long> implements
		LineaTelefonicaDAO {

	@Override
	@SuppressWarnings("unchecked")
	public LineaTelefonica findByNumero(String numero) {

		List<LineaTelefonica> res = getJpaTemplate().find(
				"SELECT LT FROM LineaTelefonica LT WHERE NUMERO = ?1 ", numero);

		if (res == null || res.isEmpty() || res.size() != 1) {
			// TODO throw new
			// IllegalStateException("No se ha hallado la linea con numero: " +
			// numero + " o hay mas de una.");
		}
		return res.get(0);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<LineaTelefonica> findActivas() {

		List<LineaTelefonica> res = null;

		res = getJpaTemplate().find(" select r from LineaTelefonica r where r.estado = ?1 and r.titular.estado = ?1",
				Estado.ACTIVO);

		return res;
	}

}
